import tags from '@/StaticResource/TagResource'

// 记录一个操作(文本)和它在控制台上发生的时间。
function trace(text) {
	text = text.trim();
	const now = (window.performance.now() / 1000).toFixed(3);

	console.log(now, text);
}

/**
 * 打印到控制台
 * @param {string} tag 标志
 * @param {string} msg 消息
 */
function log(tag, msg) {
	switch (tag) {
		case tags.success:
			console.log(`%c【${tag}】-`, 'color:#1d953f;', `${msg}`);
			break;
		case tags.error:
			console.log(`%c【${tag}】-`, 'color:#d71345;', `${msg}`);
			break;
		case tags.info:
			console.log(`%c【${tag}】-`, 'color:#d3c6a6;', `${msg}`);
			break;
		case tags.warn:
			console.log(`%c【${tag}】-`, 'color:#e0861a;', `${msg}`);
			break;
	}
}

/**
 * 打印到控制台
 * @param {string} msg 消息
 */
function logSuccess(msg) {
	log(tags.success, msg);
}

/**
 * 打印到控制台
 * @param {string} msg 消息
 */
function logError(msg) {
	log(tags.error, msg);
}

/**
 * 打印到控制台
 * @param {string} msg 消息
 */
function logInfo(msg) {
	log(tags.info, msg);
}

/**
 * 打印到控制台
 * @param {string} msg 消息
 */
function logWarn(msg) {
	log(tags.warn, msg);
}

/**
 * 打印到控制台
 * @param {object} msg object消息数据
 */
function logObj(obj) {
	console.log(obj);
}

export default {
	trace,
	log,
	logSuccess,
	logError,
	logInfo,
	logWarn,
	logObj
}
